

"""
    1，去除列表中的重复元素：li=[1,1,2,3,4,7,8,2,1,2]
    2，现存任意两个字符串s1与s2，判断s1中的字符在s2中存在的个数（重复的字符算1个，一条语句实现）
    3，编写程序，将字典中的键与值互换。
"""

class Practice0802:

    def __init__(self , list_tmp , str1 , str2 , map):
        self.list_tmp = list_tmp
        self.str1 = str1
        self.str2 = str2
        self.map = map
    #去除重复元素
    def get_delete_repeat(self):
        list_set = set(self.list_tmp)
        return list_set

    #通过数组来去重
    def get_delete_repeat2(self):
        list = []
        for tmp in self.list_tmp:
            if tmp not in list:
                list.append(tmp)
        return list

    #获取两个字符串中重复的个数
    def get_repeat_count(self):
        #第一种方法 使用set集合的交集函数
        #return  len(set(self.str1).intersection(set(self.str2)))  # 用&运算符代替亦可
        #第二中方法 使用set集合 交集运算符
        return len(set(self.str1) & set(self.str2))
    #编写程序，将字典中的键与值互换
    def get_exchange_map(self):
        #这种方法还是原来的字典对象
        new_map = dict()
        for key , value in self.map.items():
            new_map[key] = value

        for key , value in new_map.items():
            map.pop(key)
            map[value] = key
        return map

    def get_exchange_map2(self):
        ##字典推导式，这种方式产生了一个新的字典
        new_map = {value:key for key, value in self.map.items()}
        #print("self.map=" , self.map) #原来的字典未改变
        return new_map

    def get_exchange_map3(self):
        ##字典推导式
        new_map = dict(zip(self.map.values() , map.keys()))
        return new_map

# 获取字符串重复次数
def get_str_repeat_count(str , childStr):
    #统计某个字符串 出现的次数
    #count = str.count(childStr)
    # 三元表达式：条件成立时返回的值   if 条件  else 条件不成立时返回结果
    count = str.count(childStr) if childStr in str else 0
    return count


count = get_str_repeat_count('hello kenny high' , 'h')
print("count=" , count)


list_tmp = [1,1,2,3,4,7,8,2,1,2]
str1 = 'ab'  #转换为set去重后  ab
str2 = 'abcdeaedafg' #转换为set 去重后  abcdefg
map =  {'tom':60 , 'jerry':80};
obj = Practice0802(list_tmp , str1 ,str2 , map)
new_list =  obj.get_delete_repeat()
print(new_list)
new_list =  obj.get_delete_repeat2()
print('get_delete_repeat2=' , new_list)

count = obj.get_repeat_count()
print(count)
new_map = obj.get_exchange_map()
print(new_map)
new_map = obj.get_exchange_map2()
print(new_map)
new_map = obj.get_exchange_map3()
print(new_map)